package javase2.day01;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;

/***
 * 
 * 时间API综合演示：
 *    计算商品的促销日期：
 *    前提：商品的生产日期，保质期（月份数）
 *    规则：在商品过期前两周周五开始促销，如果遇到周日提前一周
 *    计算出促销日期
 *    
 *    
 *
 */
public class Demo6 {
	/**
	 * 
	 * @param proc  生产日期
	 * @param months  保质期月数
	 * @return 促销日期
	 */
	public static Date spec(Date proc,int months){
		Calendar cal = new GregorianCalendar();
		cal.setTime(proc);
		cal.add(Calendar.MONTH, months);
		cal.add(Calendar.WEEK_OF_YEAR, -2);
		if(cal.get(Calendar.DAY_OF_WEEK)==Calendar.SUNDAY){
			cal.add(Calendar.WEEK_OF_MONTH, -1);
		}
		cal.set(Calendar.DAY_OF_WEEK, Calendar.FRIDAY);
		return cal.getTime();
	}
	public static void main(String[] args) throws ParseException {
		String str = "2012-8-18";
		SimpleDateFormat fmt = new SimpleDateFormat("yyyy-MM-dd");
		Date date =fmt.parse(str);
		Date s = spec(date, 3);
		System.out.println(fmt.format(s));
		
	}
}
